<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Linear genetic programming</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Linear_genetic_programming"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Linear_genetic_programming rootpage-Linear_genetic_programming skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Linear genetic programming</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" ยท ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks vcard hlist"><tbody><tr><td class="sidebar-pretitle">Part of a series on the</td></tr><tr><th class="sidebar-title-with-pretitle"><a href="Evolutionary_algorithm" title="Evolutionary algorithm">Evolutionary algorithm</a></th></tr><tr><td class="sidebar-image"></td></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Chromosome_(evolutionary_algorithm)" title="Chromosome (evolutionary algorithm)">Chromosome</a></li>
<li><a href="Fitness_function" title="Fitness function">Fitness function</a></li>
<li><a href="Genetic_operator" title="Genetic operator">Genetic operator</a>
<ul><li><a href="Crossover_(evolutionary_algorithm)" title="Crossover (evolutionary algorithm)">Crossover</a></li>
<li><a href="Mutation_(evolutionary_algorithm)" title="Mutation (evolutionary algorithm)">Mutation</a></li>
<li><a href="Selection_(evolutionary_algorithm)" title="Selection (evolutionary algorithm)">Selection</a></li></ul></li>
<li><a href="Population_model_(evolutionary_algorithm)" title="Population model (evolutionary algorithm)">Population model</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
<a href="Genetic_algorithm" title="Genetic algorithm">Genetic algorithm</a> (GA)</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Chromosome_(genetic_algorithm)" class="mw-redirect" title="Chromosome (genetic algorithm)">Chromosome</a></li>
<li><a href="Clonal_selection_algorithm" title="Clonal selection algorithm">Clonal selection algorithm</a></li>
<li><a href="Fly_algorithm" title="Fly algorithm">Fly algorithm</a></li>
<li><a href="Genetic_fuzzy_systems" title="Genetic fuzzy systems">Genetic fuzzy systems</a></li>
<li><a href="Genetic_memory_(computer_science)" title="Genetic memory (computer science)">Genetic memory</a></li>
<li><a href="Schema_(genetic_algorithms)" title="Schema (genetic algorithms)">Schema</a></li>
<li><a href="Promoter_based_genetic_algorithm" title="Promoter based genetic algorithm">Promoter based GA</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
<a href="Genetic_programming" title="Genetic programming">Genetic programming</a> (GP)</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Cartesian_genetic_programming" title="Cartesian genetic programming">Cartesian GP</a></li>
<li><a href="Gene_expression_programming" title="Gene expression programming">Gene expression programming</a></li>
<li><a href="Grammatical_evolution" title="Grammatical evolution">Grammatical evolution</a></li>
<li><a href="Multi_expression_programming" title="Multi expression programming">Multi expression programming</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
<a href="Differential_evolution" title="Differential evolution">Differential evolution</a></th></tr><tr><th class="sidebar-heading">
<a href="Evolution_strategy" title="Evolution strategy">Evolution strategy</a></th></tr><tr><th class="sidebar-heading">
<a href="Evolutionary_programming" title="Evolutionary programming">Evolutionary programming</a></th></tr><tr><th class="sidebar-heading">
Related topics</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Cellular_evolutionary_algorithm" title="Cellular evolutionary algorithm">Cellular EA</a></li>
<li><a href="Cultural_algorithm" title="Cultural algorithm">Cultural algorithm</a></li>
<li><a href="Effective_fitness" title="Effective fitness">Effective fitness</a></li>
<li><a href="Evolutionary_computation" title="Evolutionary computation">Evolutionary computation</a></li>
<li><a href="Gaussian_adaptation" title="Gaussian adaptation">Gaussian adaptation</a></li>
<li><a href="Grammar_induction#Grammatical_inference_by_genetic_algorithms" title="Grammar induction">Grammar induction</a></li>
<li><a href="Evolutionary_multimodal_optimization" title="Evolutionary multimodal optimization">Evolutionary multimodal optimization</a></li>
<li><a href="Memetic_algorithm" title="Memetic algorithm">Memetic algorithm</a></li>
<li><a href="Neuroevolution" title="Neuroevolution">Neuroevolution</a></li></ul></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<dl><dd><i>"Linear genetic programming" is unrelated to "<a href="Linear_programming" title="Linear programming">linear programming</a>".</i></dd></dl>
<p><b>Linear genetic programming</b> (LGP)<sup id="cite_ref-book_1-0" class="reference"><a href="#cite_note-book-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> is a particular method of <a href="Genetic_programming" title="Genetic programming">genetic programming</a> wherein <a href="Computer_programs" class="mw-redirect" title="Computer programs">computer programs</a> in a population are represented as a sequence of <a href="Instruction_(computer_science)" class="mw-redirect" title="Instruction (computer science)">register-based instructions</a> from an <a href="Imperative_programming" title="Imperative programming">imperative programming language</a> or <a href="Machine_code" title="Machine code">machine language</a>. The adjective "linear" stems from the fact that each LGP program is a sequence of instructions and the sequence of instructions is normally executed sequentially. Like in other programs, the data flow in LGP can be modeled as a graph that will visualize the potential multiple usage of <a href="Processor_register" title="Processor register">register</a> contents and the existence of structurally noneffective code (<a href="Introns" class="mw-redirect" title="Introns">introns</a>) which are two main differences of this <a href="Genetic_representation" title="Genetic representation">genetic representation</a> from the more common tree-based <a href="Genetic_programming" title="Genetic programming">genetic programming</a> (TGP) variant.<sup id="cite_ref-Brameier_2-0" class="reference"><a href="#cite_note-Brameier-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>Like other Genetic Programming methods, <b>Linear genetic programming</b> requires the input of data to run the program population on. Then, the output of the program (its behaviour) is judged against some target behaviour, using a fitness function. However, LGP is generally more efficient than <b>tree genetic programming</b> due to its two main differences mentioned above: Intermediate results (stored in registers) can be reused and a simple intron removal algorithm exists<sup id="cite_ref-book_1-1" class="reference"><a href="#cite_note-book-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> that can be executed to remove all non-effective code prior to programs being run on the intended data. These two differences often result in compact solutions and substantial computational savings compared to the highly constrained data flow in trees and the common method of executing all tree nodes in TGP. Furthermore, LGP naturally has multiple outputs by defining multiple output registers and easily cooperates with <a href="Control_flow" title="Control flow">control flow operations</a>.
</p><p><b>Linear genetic programming</b> has been applied in many domains, including system modeling and system control with considerable success.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p><b>Linear genetic programming</b> should not be confused with <b>linear tree</b> programs in tree genetic programming, program composed of a variable number of unary functions and a single <a href="Leaf_node" class="mw-redirect" title="Leaf node">terminal</a>. Note that linear tree GP differs from bit string <a href="Genetic_algorithms" class="mw-redirect" title="Genetic algorithms">genetic algorithms</a> since a population may contain programs of different lengths and there may be more than two types of functions or more than two types of terminals.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Examples_of_LGP_programs">Examples of LGP programs</h2></div>
<p>Because LGP programs are basically represented by a linear sequence of instructions, they are simpler to read and to operate on than their tree-based counterparts. For example, a simple program written to solve a Boolean function problem with 3 inputs (in R1, R2, R3) and one output (in R0), could read like this:
</p>
<div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span class="nv">R4</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>R2<span class="w"> </span>AND<span class="w"> </span>R3
<span class="nv">R0</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>R1<span class="w"> </span>OR<span class="w"> </span>R4
<span class="nv">R0</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>R3<span class="w"> </span>AND<span class="w"> </span>R0
<span class="nv">R4</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>R2<span class="w"> </span>AND<span class="w"> </span>R4<span class="w"> </span><span class="c1"># This is a non-effective instruction</span>
<span class="nv">R0</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>R0<span class="w"> </span>OR<span class="w"> </span>R2
</pre></div>
<p>R1, R2, R3 have to be declared as input (read-only) registers, while R0 and R4 are declared as calculation (read-write) registers. This program is very simple, having just 5 instructions. But mutation and crossover operators could work to increase the length of the program, as well as the content of each of its instructions.
</p><p>Note that one instruction is non-effective or an intron (marked), since it does not impact the output register R0. Recognition of those instructions is the basis for the intron removal algorithm which is used analyze code prior to execution. Technically, this happens by copying an individual and then run the intron removal once. The copy with removed introns is then executed as many times as dictated by the number of training cases. Notably, the original individual is left intact, so as to continue participating in the evolutionary process. It is only the copy that is executed that is compressed by removing these "structural" introns.
</p><p>Another simple program, this one written in the LGP language <a rel="nofollow" class="external text" href="https://github.com/arturadib/slash-a">Slash/A</a> looks like a series of instructions separated by a slash:
</p>
<div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre>input/<span class="w"> </span><span class="c1"># gets an input from user and saves it to register F</span>
<span class="m">0</span>/<span class="w"> </span><span class="c1"># sets register I = 0</span>
save/<span class="w"> </span><span class="c1"># saves content of F into data vector D[I] (i.e. D[0] := F)</span>
input/<span class="w"> </span><span class="c1"># gets another input, saves to F</span>
add/<span class="w"> </span><span class="c1"># adds to F current data pointed to by I (i.e. F := F + D[0])</span>
output/.<span class="w"> </span><span class="c1"># outputs result from F</span>
</pre></div>
<p>By representing such code in <a href="Bytecode" title="Bytecode">bytecode</a> format, i.e. as an array of bytes each representing a different instruction, one can make <a href="Mutation_(genetic_algorithm)" class="mw-redirect" title="Mutation (genetic algorithm)">mutation</a> operations simply by changing an element of such an array.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Multi_expression_programming" title="Multi expression programming">Multi expression programming</a></li>
<li><a href="Cartesian_genetic_programming" title="Cartesian genetic programming">Cartesian genetic programming</a></li>
<li><a href="Grammatical_evolution" title="Grammatical evolution">Grammatical evolution</a></li>
<li><a href="Genetic_programming" title="Genetic programming">Genetic programming</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-book-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-book_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-book_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">M. Brameier, W. Banzhaf, "<a rel="nofollow" class="external text" href="https://link.springer.com/book/10.1007/978-0-387-31030-5">Linear Genetic Programming</a>", Springer, New York, 2007</span>
</li>
<li id="cite_note-Brameier-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Brameier_2-0">^</a></b></span> <span class="reference-text">Brameier, M.: "<a rel="nofollow" class="external text" href="https://eldorado.uni-dortmund.de/handle/2003/20098">On linear genetic programming</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070629120053/https://eldorado.uni-dortmund.de/handle/2003/20098">Archived</a> 2007-06-29 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>", Dortmund, 2003</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">W. Banzhaf, P. Nordin, R. Keller, F. Francone, <a rel="nofollow" class="external text" href="https://www.amazon.com/Genetic-Programming-Introduction-Artificial-Intelligence/dp/155860510X">Genetic Programming - An Introduction</a>, Morgan Kaufmann, Heidelberg/San Francisco, 1998</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFPoli,_R.Langdon,_W._B.McPhee,_N._F.2008" class="citation book cs1">Poli, R.; Langdon, W. B.; McPhee, N. F. (2008). <a rel="nofollow" class="external text" href="https://archive.org/details/AFieldGuideToGeneticProgramming"><i>A Field Guide to Genetic Programming</i></a>. Lulu.com, freely available from the internet. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-4092-0073-4</bdi>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">M. Brameier, W. Banzhaf, <a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=7cb0f6755e325494afbda4f822026e8e6953ffe1">A Comparison of Linear Genetic Programming and Neural Networks in Medical Data Mining</a>", <i>IEEE Transactions on Evolutionary Computation</i>, <i>5</i> (2001) 17-26</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text">A. Guven, <a rel="nofollow" class="external text" href="https://link.springer.com/article/10.1007/s12040-009-0022-9">Linear genetic programming for time-series modelling of daily flow rate</a>, <i>J. Earth Systems Science</i>, <i>118</i> (2009) 137-146</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">R. Li, B.R. Noack, L. Cordier, J. Boree, F. Harambat, <a rel="nofollow" class="external text" href="https://link.springer.com/article/10.1007/s00348-017-2382-2">Drag reduction of a car model by linear genetic programming control</a>, <i>Experiments in Fluids</i>, <i>58</i> (2017) 103</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text">P.-Y. Passagia, A. Quansah, N. Mazellier, G.Y. Cornejo Maceda, A. Kourta, <a rel="nofollow" class="external text" href="https://aip.scitation.org/doi/full/10.1063/5.0087874">Real-time feedback stall control of an airfoil at large Reynolds numbers using linear genetic programming</a>, <i>Physics of Fluids</i>, 34 (2022) 045108</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text">
<a rel="nofollow" class="external text" href="http://www.cs.ucl.ac.uk/staff/W.Langdon/FOGP/">Foundations of Genetic Programming</a>.</span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://github.com/arturadib/slash-a">Slash/A</a> A programming language and C++ library specifically designed for linear GP</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150801073202/http://digitalbiology.net/">DigitalBiology.NET</a> Vertical search engine for GA/GP resources</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060816011453/http://www.aimlearning.com/">Discipulus</a> Genetic-Programming Software</li>
<li><a rel="nofollow" class="external text" href="https://ugp3.sourceforge.net/">MicroGP</a> Genetic-Programming Software (open source)</li>
<li><a rel="nofollow" class="external autonumber" href="https://github.com/Zhixing1020/Linear-Genetic-Programming-LGP-and-Applications">[1]</a> An open-source Linear GP project based on a Java-based Evolutionary Computation Research System (ECJ).</li>
<li><a rel="nofollow" class="external autonumber" href="http://www.genetic-programming.org">[2]</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Evolutionary_computation153" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Evolutionary_computation153" style="font-size:114%;margin:0 4em"><a href="Evolutionary_computation" title="Evolutionary computation">Evolutionary computation</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Main Topics</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Evolutionary_algorithm" title="Evolutionary algorithm">Evolutionary algorithm</a></li>
<li><a href="Evolutionary_data_mining" title="Evolutionary data mining">Evolutionary data mining</a></li>
<li><a href="Evolutionary_multimodal_optimization" title="Evolutionary multimodal optimization">Evolutionary multimodal optimization</a></li>
<li><a href="Human-based_evolutionary_computation" title="Human-based evolutionary computation">Human-based evolutionary computation</a></li>
<li><a href="Interactive_evolutionary_computation" title="Interactive evolutionary computation">Interactive evolutionary computation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Algorithm" title="Algorithm">Algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cellular_evolutionary_algorithm" title="Cellular evolutionary algorithm">Cellular evolutionary algorithm</a></li>
<li><a href="CMA-ES" title="CMA-ES">Covariance Matrix Adaptation Evolution Strategy (CMA-ES)</a></li>
<li><a href="Cultural_algorithm" title="Cultural algorithm">Cultural algorithm</a></li>
<li><a href="Differential_evolution" title="Differential evolution">Differential evolution</a></li>
<li><a href="Evolutionary_programming" title="Evolutionary programming">Evolutionary programming</a></li>
<li><a href="Genetic_algorithm" title="Genetic algorithm">Genetic algorithm</a></li>
<li><a href="Genetic_programming" title="Genetic programming">Genetic programming</a></li>
<li><a href="Gene_expression_programming" title="Gene expression programming">Gene expression programming</a></li>
<li><a href="Evolution_strategy" title="Evolution strategy">Evolution strategy</a></li>
<li><a href="Natural_evolution_strategy" title="Natural evolution strategy">Natural evolution strategy</a></li>
<li><a href="Neuroevolution" title="Neuroevolution">Neuroevolution</a></li>
<li><a href="Learning_classifier_system" title="Learning classifier system">Learning classifier system</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related techniques</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Swarm_intelligence" title="Swarm intelligence">Swarm intelligence</a></li>
<li><a href="Ant_colony_optimization" class="mw-redirect" title="Ant colony optimization">Ant colony optimization</a></li>
<li><a href="Bees_algorithm" title="Bees algorithm">Bees algorithm</a></li>
<li><a href="Cuckoo_search" title="Cuckoo search">Cuckoo search</a></li>
<li><a href="Particle_swarm_optimization" title="Particle swarm optimization">Particle swarm optimization</a></li>
<li><a href="Bacterial_Colony_Optimization" class="mw-redirect" title="Bacterial Colony Optimization">Bacterial Colony Optimization</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Metaheuristic" title="Metaheuristic">Metaheuristic methods</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Firefly_algorithm" title="Firefly algorithm">Firefly algorithm</a></li>
<li><a href="Harmony_search" class="mw-redirect" title="Harmony search">Harmony search</a></li>
<li><a href="Gaussian_adaptation" title="Gaussian adaptation">Gaussian adaptation</a></li>
<li><a href="Memetic_algorithm" title="Memetic algorithm">Memetic algorithm</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Artificial_development" title="Artificial development">Artificial development</a></li>
<li><a href="Artificial_intelligence" title="Artificial intelligence">Artificial intelligence</a></li>
<li><a href="Artificial_life" title="Artificial life">Artificial life</a></li>
<li><a href="Digital_organism" title="Digital organism">Digital organism</a></li>
<li><a href="Evolutionary_robotics" title="Evolutionary robotics">Evolutionary robotics</a></li>
<li><a href="Fitness_function" title="Fitness function">Fitness function</a></li>
<li><a href="Fitness_landscape" title="Fitness landscape">Fitness landscape</a></li>
<li><a href="Fitness_approximation" title="Fitness approximation">Fitness approximation</a></li>
<li><a href="Genetic_operators" class="mw-redirect" title="Genetic operators">Genetic operators</a></li>
<li><a href="Interactive_evolutionary_computation" title="Interactive evolutionary computation">Interactive evolutionary computation</a></li>
<li><a href="No_free_lunch_in_search_and_optimization" title="No free lunch in search and optimization">No free lunch in search and optimization</a></li>
<li><a href="Machine_learning" title="Machine learning">Machine learning</a></li>
<li><a href="Mating_pool" title="Mating pool">Mating pool</a></li>
<li><a href="Premature_convergence" title="Premature convergence">Premature convergence</a></li>
<li><a href="Program_synthesis" title="Program synthesis">Program synthesis</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Academic_journal" title="Academic journal">Journals</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Evolutionary_Computation_(journal)" title="Evolutionary Computation (journal)">Evolutionary Computation (journal)</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-12-27" href="https://en.wikipedia.org/wiki/?title=Linear_genetic_programming&oldid=1265519785">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>